Digital content delivery from content libraries of a content provider to terminal devices has been in widespread use since the adoption of the World Wide Web (WWW). In its simplest form, a content delivery system of the prior art consists of a Web server from where a client terminal such as a Web browser running on a personal computer may download content identified by an Uniform Resource Locator (URL). Such a simple system has its limitations, however. Most importantly, a single server has its limits in terms of maximum performance. Too many concurrent client terminals downloading data from the server cause the download speed experienced by a client to drop below a critical lower limit which makes rendering multimedia content unpractical.
Digital content may be enhanced by attaching metadata to the content. For example, an audio track containing music may have metadata attached that contain information about the name of the track, artist, composer, genre and date of recording. Similarly, a video stream of a motion picture may contain metadata about the actors, director and producer of the motion picture. In case of a video stream, the stream often consists of a number of segments. Each segment may have its own metadata attached. Such metadata contains information about what the particular segment of the video contains. In video streams, the metadata may be of a standardized nature, e.g., following MPEG-7 or MPEG-21 standards that are based on an Extensible Markup Language (XML) standard. Some metadata may be provided by the provider of the content, but metadata may also be created by individual users of the content. For example, in the World Wide Web, some web sites allow users to tag content. Other users may then use the tagging data to find the content they want to access and use.
Users of the World Wide Web may use various ways to find the content they are interested about. Most typically, users enter some plain text to a search engine as a search criterion. The search engine executes the query against its databases and returns a list of URLs (Uniform Resource Locator) to the web browser of the user. The list typically is sorted by relevance.
Another way to access data that is of interest to the user is to use an alert service. For example, some news sites in the Web provide a service that sends a notification e-mail to a user whenever content matching a persistent search criteria specified by the user is input to the content database. The user may for instance request that whenever a news item containing the word “baseball” is created, a notification about the item along with the URL of the item is sent to the e-mail address given by the user.
Yet another way to receive a specific kind of content data from the web is a so called “Podcast.” Podcast is a service accessible through an URL that provides a “channel” of content for download into a rendering device such as a mobile digital audio player device. For example, an URL may provide a certain daily radio program that has been made available for download. The content of the Podcast channel typically changes regularly, thus providing different content for each download. A user may render the content from the local storage of the device at his/her convenience.
Personalized websites are also well known in the prior art. Such a web site identifies the user and provides a personalized view to the services provided by the web site. For example, the web site may provide different content or a user interface depending on who is accessing the web site.
Patent application US 2004/0068532 teaches a system for supporting production, management and delivery of media content for wireless devices. The method teaches a usage of a single rules engine that uses rules for selecting and delivering such content to mobile devices that can be delivered and rendered in the target device. According to the method, content data is stored in a file server and related rules and metadata are stored in a separate relational database server. Having some data in a file server and some other data in a relational database server introduces a risk of losing data integrity within the overall data model if an error occurs when writing data to the system. Storing data as files in a file server also means that the data cannot be written, e.g., deleted from the system while it is being concurrently read. Moreover, the method of the patent application does not teach a way to scale up the system's content delivery capacity.
The prior art provides suitable methods and systems for finding, accessing and rendering content and metadata in a system where content meeting some search criteria needs to be delivered to individual terminals. However, those methods and systems are not suitable for maintaining reliably and manageably a relevant copy of digital content along with data related to the content in a specified group of devices. Only a set of content that matches the user's or user group's needs, should preferably be sent to the designated devices of the users. When the content is not any more relevant in the device, it should for usability and resource consumption reasons be automatically deleted from the device by the server that sent the piece of content to the device. For manageability reasons, the server should always maintain information about what data actually is in each of the devices with which the server interacts. Users also need to have access to the same content from multiple different devices. Hence, the delivery system should provide a capability for identifying all the devices which a piece of content should be delivered. The methods taught by the prior art also fail to provide a solution for managing digital content in a large content delivery network from a centralized management system. The methods taught by the prior art also fail to provide a method that guarantees good performance and data availability in situations where the same data is being read and written simultaneously in the devices of the network. Finally, the methods taught by the prior art fail to provide a quick system recovery in an error situation where a server computer fails because of a fatal software or hardware error.